#include "lvgl_show_task.h"
#include "cbb_init.h"

#include "FreeRTOS.h"
#include "task.h"

#include "lv_port_disp.h"

static void 
lvgl_show_task_run(void *pvArgs){

    (void) pvArgs;

    for(;;)
    {
        lv_timer_handler();
        
        vTaskDelay(pdMS_TO_TICKS(5));
    }
}

void lvgl_show_task_init(void){

    lv_init();
    lv_port_disp_init();

    static StaticTask_t stTaskTCB;
    static StackType_t  stTaskStack[configMINIMAL_STACK_SIZE * 20];
    static TaskHandle_t stTaskHandle = NULL;
    (void) stTaskHandle;

    stTaskHandle = xTaskCreateStatic(
        lvgl_show_task_run,                   /* 任务函数 */
        "LVGLShowTask",                          /* 名字 */
        configMINIMAL_STACK_SIZE * 20,      /* 栈深度（字） */
        NULL,                           /* 参数 */
        tskIDLE_PRIORITY + 4,               /* 优先级 */
        stTaskStack,                   /* 静态栈数组 */
        &stTaskTCB);                 /* 静态 TCB 变量 */
}
INIT_PORT_TASK(lvgl_show_task_init);
